package com.pro.service.imple;

import com.pro.mapper.JsCommentMapper;
import com.pro.pojo.JsComment;
import com.pro.pojo.JsonData;
import com.pro.service.JsCommentService;
import com.pro.utils.DateUtils;
import com.pro.utils.SensitiveWordsUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * @Author 祖铭泽
 * @Date 2022/1/14/0014
 * @description 评论 业务层 实现类
 */
@Service
public class JsCommentServiceImple implements JsCommentService {
    @Autowired
    private JsCommentMapper jsCommentMapper;
    /**
     * @Author 祖铭泽
     * @Date 2022/1/14/0014
     * @description 根据课程id和课程类型 查询所有课程评论
     */
    @Override
    public JsonData getAllCourseComments(JsComment jsComment) {
        List<JsComment> allCourseComments = jsCommentMapper.getAllCourseComments(jsComment);
        allCourseComments = SensitiveWordsUtil.getListFilter(allCourseComments);
        return allCourseComments != null ? JsonData.buildSuccess(allCourseComments) : JsonData.buildError("查询失败");
    }
    /**
     * @Author 祖铭泽
     * @Date 2022/1/14/0014
     * @description 根据评论id更改显示状态
     */
    @Override
    public JsonData updateCommentDisplayById(JsComment jsComment) {
        boolean updateCommentDisplayById = jsCommentMapper.updateCommentDisplayById(jsComment);
        return updateCommentDisplayById ? JsonData.buildSuccess(updateCommentDisplayById) : JsonData.buildError("修改失败");
    }

    /**
     * @Author 祖铭泽
     * @Date 2022/1/14/0014
     * @description 根据评论id更改评论状态
     */
    @Override
    public JsonData updateCommentStatusById(JsComment jsComment) {
        boolean updateCommentStatusById = jsCommentMapper.updateCommentStatusById(jsComment);
        return updateCommentStatusById ? JsonData.buildSuccess(updateCommentStatusById) : JsonData.buildError("修改失败");
    }
    /**
     * @Author 祖铭泽
     * @Date 2022/1/14/0014
     * @description 发表评论
     */
    @Override
    public JsonData addComment(JsComment jsComment) {
        jsComment.setCommentDate(DateUtils.tranferDateTimeToString(new Date()));
        jsComment.setCreateDate(DateUtils.tranferDateTimeToString(new Date()));
        boolean addComment = jsCommentMapper.addComment(jsComment);
        return addComment ? JsonData.buildSuccess(jsComment) : JsonData.buildError("添加失败");
    }
}
